package Entities;
// Generated Jun 21, 2009 1:07:04 PM by Hibernate Tools 3.2.1.GA


import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Klassen generated by hbm2java
 */
@Entity
@Table(name="klassen"
    ,catalog="pdlv2"
)
public class Klassen  implements java.io.Serializable {


     private Integer id;
     private Personen personen;
     private Cursussen cursussen;
     private Date aanvraagDatum;
     private Date geldigVan;
     private Date geldigTot;
     private boolean accodering;
     private Set<Resultaten> resultatens = new HashSet<Resultaten>(0);

     /**
      *
      */
     public Klassen() {
    }

	
    /**
     *
     * @param personen
     * @param cursussen
     * @param aanvraagDatum
     * @param geldigVan
     * @param geldigTot
     * @param accodering
     */
    public Klassen(Personen personen, Cursussen cursussen, Date aanvraagDatum, Date geldigVan, Date geldigTot, boolean accodering) {
        this.personen = personen;
        this.cursussen = cursussen;
        this.aanvraagDatum = aanvraagDatum;
        this.geldigVan = geldigVan;
        this.geldigTot = geldigTot;
        this.accodering = accodering;
    }
    /**
     *
     * @param personen
     * @param cursussen
     * @param aanvraagDatum
     * @param geldigVan
     * @param geldigTot
     * @param accodering
     * @param resultatens
     */
    public Klassen(Personen personen, Cursussen cursussen, Date aanvraagDatum, Date geldigVan, Date geldigTot, boolean accodering, Set<Resultaten> resultatens) {
       this.personen = personen;
       this.cursussen = cursussen;
       this.aanvraagDatum = aanvraagDatum;
       this.geldigVan = geldigVan;
       this.geldigTot = geldigTot;
       this.accodering = accodering;
       this.resultatens = resultatens;
    }
   
    /**
     *
     * @return
     */
    @Id @GeneratedValue(strategy=IDENTITY)
    
    @Column(name="id", unique=true, nullable=false)
    public Integer getId() {
        return this.id;
    }
    
     /**
      *
      * @param id
      */
     public void setId(Integer id) {
        this.id = id;
    }
     /**
      *
      * @return
      */
     @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="persoons_id", nullable=false)
    public Personen getPersonen() {
        return this.personen;
    }
    
     /**
      *
      * @param personen
      */
     public void setPersonen(Personen personen) {
        this.personen = personen;
    }
    /**
     *
     * @return
     */
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="cursus_id", nullable=false)
    public Cursussen getCursussen() {
        return this.cursussen;
    }
    
/**
 *
 * @param cursussen
 */
public void setCursussen(Cursussen cursussen) {
        this.cursussen = cursussen;
    }
/**
 *
 * @return
 */
@Temporal(TemporalType.TIMESTAMP)
    @Column(name="aanvraag_datum", nullable=false, length=19)
    public Date getAanvraagDatum() {
        return this.aanvraagDatum;
    }
    
    /**
     *
     * @param aanvraagDatum
     */
    public void setAanvraagDatum(Date aanvraagDatum) {
        this.aanvraagDatum = aanvraagDatum;
    }
    /**
     *
     * @return
     */
    @Temporal(TemporalType.DATE)
    @Column(name="geldig_van", nullable=false, length=10)
    public Date getGeldigVan() {
        return this.geldigVan;
    }
    
    /**
     *
     * @param geldigVan
     */
    public void setGeldigVan(Date geldigVan) {
        this.geldigVan = geldigVan;
    }
    /**
     *
     * @return
     */
    @Temporal(TemporalType.DATE)
    @Column(name="geldig_tot", nullable=false, length=10)
    public Date getGeldigTot() {
        return this.geldigTot;
    }
    
    /**
     *
     * @param geldigTot
     */
    public void setGeldigTot(Date geldigTot) {
        this.geldigTot = geldigTot;
    }
    
    /**
     *
     * @return
     */
    @Column(name="accodering", nullable=false)
    public boolean isAccodering() {
        return this.accodering;
    }
    
    /**
     *
     * @param accodering
     */
    public void setAccodering(boolean accodering) {
        this.accodering = accodering;
    }
    /**
     *
     * @return
     */
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="klassen")
    public Set<Resultaten> getResultatens() {
        return this.resultatens;
    }
    
/**
 *
 * @param resultatens
 */
public void setResultatens(Set<Resultaten> resultatens) {
        this.resultatens = resultatens;
    }




}


